package com.neuedu.homework;

public class TestCompany {
    public static void main(String[] args) {
        //定义员工数组
        ColaEmployee[] arrEmps=new ColaEmployee[3];
        //创建员工加入数组
        //此处使用了多态：使用父类类型指代子类
        //（父类类型）ColaEmployee = new 实例对象是父类ColaEmployee子类的实例对象
        arrEmps[0]=new SalariedEmployee("Mark",9,520000);
        arrEmps[1]=new HourlyEmployee("Jackson",3,58000,180);
        arrEmps[2]=new SalesEmployee("BamBam",5,500000,0.03);
        //打印员工2月份工资
        //创建company类的实例对象
        Company company=new Company();
        //遍历员工列表，打印所有员工2月份工资
        //设置打印的月份
        company.setCaculateMonth(2);
        for (int i=0;i<arrEmps.length;i++){
            //设置打印员工类的属性
            //打印的员工
            company.setColaEmplovee(arrEmps[i]);
            //打印员工工资
            company.printcaculateEmploveeSalary();

        }
        System.out.println("---------------------------");
        Company2 company2=new Company2();
        for (int i=0;i<arrEmps.length;i++){

            company2.printcaculateEmploveeSalary(2,arrEmps[i]);

        }

        System.out.println("----------打印单独员工工资-------------");
        SalesEmployee seBB =new SalesEmployee("BamBam",5,500000,0.03);
// 此处使用了多态:使用父类类型指代子类
        /*
            printEmployeeSalary方法调用时传递的参数（形参）是 子类类型
            printEmployeeSalary方法的实参是父类类型
            在方法调用时，将子类型的参数（形参）的值
            传递给了父类类型的方法定义的参数（实参）
          */
        company2.printcaculateEmploveeSalary(2,seBB);
    }


}
